The present invention relates to data processing by digital computer, and more particularly to application programming.
Users of an application program may need to customize the runtime behavior of the application program based on user preferences. For example, if the application program is deployed by an enterprise having users with different roles in the enterprise, the behavior of the application program may need to be customized for each user role within the enterprise. In addition, it may be necessary to customize the application program based on other user specific factors, such as the geographical location of the user or the language preferences of the user.
Applications can be developed using various architectures, including, for example, a model-view-controller (MVC) architecture. The MVC architecture breaks an application into three separate parts—models, views, and controllers. Each model can have multiple views, where each view displays information about the model to a user. A controller of the model receives events, for example, raised by a user interacting with a view to manipulate the model. Each model can have multiple controllers, and a controller can relate to multiple views. The models and the controllers typically include application code. When changes occur in a model, the model updates its views. Data binding can be used for data transport between the view and its model or controller.
An application program developed using the MVC architecture can be customized by customizing the models used by the application.